{{tag>Ocelot Apache mod}}
----
 
====== ModSecurity ======
 
ModSecurity est un module d'Apache spécialisé dans la sécurité. Il permet donc de sécuriser la couche applicative avant l'arrivée des requêtes sur le site hébergé sur l'Apache en question. Même s'il s'agit d'un module, ses fonctionnalités sont vastes et permettent de toucher à tous les points de sécurité nécessaire. Comme utilisations possible, citons la détection de tentatives d'inclusions, la lutte anti-spam, l'utilisation d'exploits (il permet de cacher les numéros de versions utilisées sur les pages d'erreur renvoyées par le serveur Web), l'application d'une liste noire (ou blanche), etc...
 
===== Pré-requis =====
 
  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'un serveur Apache installé. [[apache2|Voir la page correspondante]]
 
===== Installation =====
 

Pour installer ce logiciel, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>libapache2-modsecurity]]**.
Cela aura le résultat de créer:
  * Les fichiers //mod-security.conf// et //mod-security.load// dans le dossier ///etc/apache2/mod-available//. Le lien symbolique (correspondant à la commande "a2enmod mod-security" sera automatiquement créé).
  * Le dossier ///etc/modsecurity///. Il contiendra toute la configuration à venir. Pour que la configuration soit prise en compte, il faudra que les fichiers contenant les directives disposent d'un suffixe// .conf//.
  * Le dossier ///usr/share/modsecurity-crs/.// Il contient des exemples de fichier à utiliser selon les besoins de l'administrateur.
 
===== Configuration minimale =====
 
Pour fonctionner, ModSecurity a besoin d'une configuration activée, non présente après l'installation du module. Pour ce faire, il est possible de simplement [[:tutoriel:learn_unix_in_10_minutes#deplacer_renommer_et_copier_des_fichiers|renommer le fichier]] ///etc/modsecurity/modsecurity.conf-recommended//, et lui enlever la partie "-recommanded" pour qu'il soit reconnu par l'application.

Il est nécessaire de comprendre que s'agissant d'un module, la configuration associée est ici séparée dans un dossier à part (/etc/modsecurity/), mais que cela est parfaitement optionnel. Il suffit que la configuration est lue par le moteur Apache, pour que les directives modsecurity soient reconnues. Par exemple, il est possible de placer directement les directives dans les fichiers de [[:tutoriel:virtualhosts_avec_apache2|VirtualHost]]

La configuration de ce fichier, via la directive "//SecRuleEngine DetectionOnly//", n'aura pas l'action de bloquer quelle que requête que ce soit. Elle se contentera de journaliser les détections (voir partie suivante). Si, à des fins de tests, ou quand votre configuration vous semble parée, vous pensez être prêt à bloquer les requêtes suspectes, alors il faut passer le paramètre //SecRuleEngine// à// On//.

 

===== Journalisation (log) =====

Deux fichiers de logs sont présents à l'activation de l'application:
  * ///var/log/apache2/modsec_audit.log// - **Audit Log** : Permet un audit approfondi de chaque requête, avec tous les éléments nécessaires, classés selon le type de données (type d'header, pattern détecté, etc...) récoltée.
  * ///var/log/apache2/modsec_debug.log// - **Debug Log** :  Permet un affichage bien plus condensé des informations, en ne gardant que les plus essentielles. Utile pour retrouver une requête bloquée sur un serveur en production.

Les paramètres de la journalisation sont configurables dans n'importe quel fichier pris en compte par Apache.

===== Utilisation=====
 
TODO
 
===== Désinstallation =====
TODO
===== Voir aussi =====
 
  * **(en)** [[Site officiel du logiciel]]
  * **(fr)** [[Site de la communauté francophone du logiciel Bidule]]
  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=64840|Discussion « J'ai un soucis avec le logiciel Bidule »]] sur le forum Ubuntu-fr
 
----
//Contributeurs principaux : [[utilisateurs:Amarokk|Guillaume Fenollar]], et bientôt vous?